package com.chalk.model;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.util.Date;

/**
 * 平台角色信息(SysRole)实体类
 *
 * @author maxiaoqiang
 * @since 2019-03-22 17:35:28
 */
@ApiModel(value = "SysRole", description = "平台角色信息")
@Data
@TableName("t_sys_role")
public class SysRole {

    /**
     * 主键
     */
    @ApiModelProperty(name = "roleId", value = "主键")
    @TableId(type = IdType.ID_WORKER_STR)
    private String roleId;


    /**
     * 名称
     */
    @ApiModelProperty(name = "name", value = "名称")
    @TableField("name")
    @NotEmpty(message = "名称不可为空")
    private String name;

    /**
     * 标识
     */
    @ApiModelProperty(name = "mark", value = "标识")
    @TableField("mark")
    private String mark;

    /**
     * 所属单位(ID)
     */
    @ApiModelProperty(name = "unitId", value = "所属单位(ID)")
    @TableField("unit_id")
    private String unitId;

    /**
     * 描述
     */
    @ApiModelProperty(name = "description", value = "描述")
    @TableField("description")
    @NotEmpty(message = "描述不可为空")
    private String description;

    /**
     * 操作人类型（0、系统自动操作，1、平台人员操作，2、商家人员操作，3、会员操作）
     */
    @ApiModelProperty(name = "operatorType", value = "操作人类型（0、系统自动操作，1、平台人员操作，2、商家人员操作，3、会员操作）")
    @TableField("operator_type")
    private Integer operatorType;

    /**
     * 操作人id（根据操作人类型会对应不同的表记录）
     */
    @ApiModelProperty(name = "operatorId", value = "操作人id（根据操作人类型会对应不同的表记录）")
    @TableField("operator_id")
    private String operatorId;

    /**
     * 创建时间
     */
    @ApiModelProperty(name = "createTime", value = "创建时间")
    @TableField("create_time")
    private Date createTime;

    /**
     * 修改时间
     */
    @ApiModelProperty(name = "updateTime", value = "修改时间")
    @TableField("update_time")
    private Date updateTime;

    /**
     * 是否已删除（逻辑删除，1、已删除，0、未删除，默认0）
     */
    @ApiModelProperty(name = "status", value = "是否可用(0:可用 1:不可用)")
    @TableField("status")
    private Integer status;

    /**
     * 是否已删除（逻辑删除，1、已删除，0、未删除，默认0）
     */
    @ApiModelProperty(name = "isDeleted", value = "是否已删除（逻辑删除，1、已删除，0、未删除，默认0）")
    @TableField("is_deleted")
    private Integer isDeleted;

    /**
     * 是否已删除（逻辑删除，1、已删除，0、未删除，默认0）
     */
    @ApiModelProperty(name = "f_id", value = "上级id")
    @TableField("f_id")
    private String fId;

    @TableField(exist = false)
    private String fName;
}